USHIFT-7065: CI implementation: Support MicroShift V5.0 on RHEL 9.8 GA Implementation - #7139
Conversation
|
@agullon: This pull request references USHIFT-7065 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (12)
🚧 Files skipped from review as they are similar to previous changes (11)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. WalkthroughAdds RHEL 9.8 Brew Y-1 and Y-2 image blueprints, bootc LVMS upgrade scenarios, RPM LVMS upgrade scenarios, RPM standard scenarios, and RPM upgrade scenarios. ChangesRHEL 9.8 release validation
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to This change adds RHEL 9.8 upgrade-validation coverage and image blueprints for supported MicroShift release paths. No concrete merge-blocking risk is currently identified. Sequence Diagram(s)sequenceDiagram
participant Scenario
participant host1
participant MicroShift
participant RobotFrameworkSuites
Scenario->>host1: Create and configure RHEL 9.8 VM
host1->>MicroShift: Configure repositories and wait for readiness
Scenario->>MicroShift: Validate LVMS workloads and resources
Scenario->>RobotFrameworkSuites: Run installation or upgrade suite
RobotFrameworkSuites->>host1: Run standard and removal validation
Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error, 1 warning)
✅ Passed checks (13 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 27 functions across 9 files. (4 skipped: 4 unsupported.) Full details: Stable And Deterministic Test NamesExplanation PASS: The PR changes only Containerfile, TOML, and shell scenario files, plus three pure renames. The changed files contain no Ginkgo title declarations such as Full details: Test Structure And QualityExplanation PASS: The PR changes only Containerfiles, TOML blueprints, and Bash scenario scripts. It adds no Ginkgo test code or Ginkgo constructs. The changed scenarios invoke Robot Framework Full details: Microshift Test CompatibilityExplanation PASS: The complete PR diff adds only shell scenarios, Containerfiles, and TOML blueprints, plus file renames. It adds no Go files or Ginkgo declarations such as It(), Describe(), Context(), or When(). The new shell scenarios invoke existing Robot Framework and Ginkgo-related setup; they do not add Ginkgo e2e tests. Therefore, this custom check is not applicable. Full details: Single Node Openshift (Sno) Test CompatibilityExplanation PASS: The PR adds only Containerfiles, TOML blueprints, and shell scenario orchestration. The diff contains no Go or Ginkgo test files and no added Full details: Topology-Aware Scheduling CompatibilityExplanation PASS: The PR changes only image blueprint templates and release test scenario scripts, plus three 100% renames. It adds no deployment manifests, operator code, controllers, or topology scheduling fields such as affinity, topology spread, node selectors, tolerations, PDBs, or replica logic. The LVMS Deployment used by the new scenarios is in an unchanged helper and has only replicas: 1 without scheduling constraints. Therefore, the PR does not introduce a failure condition from this check. Full details: Ote Binary Stdout ContractExplanation The complete diff from the PR base (36591e2) to HEAD contains 12 shell, TOML, and Containerfile paths only; it contains no changed Go or other OTE binary source. Searches of all added lines and changed files found no process-level stdout APIs, klog configuration, Ginkgo suite hooks, TestMain, or main function. The added shell Full details: Ipv6 And Disconnected Network Test CompatibilityExplanation PASS: The pull request adds only shell scenario scripts and image blueprint/container configuration, plus four 100% file renames. The complete diff from Full details: No-Weak-CryptoExplanation PASS. The PR diff from origin/main adds blueprints and scenario orchestration only. Exact scans of all added lines and changed file contents found no MD5, SHA1, DES, 3DES, RC4, Blowfish, or ECB usage. The added shell code delegates to VM, repository, firewall, and Robot Framework helpers. It adds no custom cryptography and no secret or token comparisons. The renamed RPM files are 100% content-preserving renames. Full details: Container-PrivilegesExplanation No listed container privilege setting is introduced. Against Full details: No-Sensitive-Data-In-LogsExplanation The new scenario paths expose the CI pull secret through shell tracing. CI runs each scenario as Resolution Prevent secret-bearing commands from reaching xtrace. Update
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/scenarios/releases/el98-yminus1`@el98-lrel@lvms-standard.sh:
- Around line 1-7: Update the three scenario
files—test/scenarios/releases/el98-yminus1@el98-lrel@lvms-standard.sh (lines
1-7), test/scenarios/releases/el98-yminus2@el98-lrel@lvms-standard.sh (lines
1-7), and test/scenarios/releases/el98-yminus2@rpm-upgrade.sh (lines 1-14)—to
use the #!/usr/bin/bash shebang and add set -euo pipefail immediately after it.
In `@test/scenarios/releases/el98-yminus2`@rpm-upgrade.sh:
- Line 43: Update the reponame declaration in the release-upgrade script to
declare the readonly local variable separately, then assign it from basename in
a distinct command so basename’s exit status is preserved and ShellCheck SC2155
is resolved.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 72fa958a-0fde-4f90-ae7e-54634c04daa4
📒 Files selected for processing (9)
test/image-blueprints-bootc/el9/layer4-release/group1/rhel98-bootc-brew-y1-with-optional.containerfiletest/image-blueprints-bootc/el9/layer4-release/group1/rhel98-bootc-brew-y2-with-optional.containerfiletest/image-blueprints/layer4-release/group1/rhel98-brew-y2-with-optionals.tomltest/image-blueprints/layer4-release/group2/rhel98-brew-y1-with-optionals.tomltest/scenarios-bootc/el9/releases/el98-y1@el98-lrel@lvms-standard.shtest/scenarios-bootc/el9/releases/el98-y2@el98-lrel@lvms-standard.shtest/scenarios/releases/el98-yminus1@el98-lrel@lvms-standard.shtest/scenarios/releases/el98-yminus2@el98-lrel@lvms-standard.shtest/scenarios/releases/el98-yminus2@rpm-upgrade.sh
86f77e1 to
b7ab499
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
test/scenarios/releases/el98-lrel@rpm-standard1.sh (1)
1-14: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAlign the four sourced scripts with the shell-script policy.
test/bin/scenario.shenables strict mode before sourcing these files. Change all four shebangs to#!/usr/bin/bashand addset -euo pipefail, or document an explicit exception for sourced scenario scripts.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/scenarios/releases/el98-lrel`@rpm-standard1.sh around lines 1 - 14, Update all four sourced scenario scripts—test/scenarios/releases/el98-lrel@rpm-standard1.sh (lines 1-14), test/scenarios/releases/el98-lrel@rpm-standard2.sh (lines 1-14), test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (lines 1-14), and test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh (lines 1-14)—to use the /usr/bin/bash shebang and enable set -euo pipefail, or document an explicit shell-policy exception for these scripts.Sources: Coding guidelines, Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/scenarios/releases/el98-yminus1`@el98-lrel@rpm.sh:
- Around line 51-56: Pin RHEL 9.8 after repository setup and before dependency
installation by adding the subscription-manager release command before run_tests
host1 in both test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (lines
51-56) and test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh (lines 51-55).
---
Nitpick comments:
In `@test/scenarios/releases/el98-lrel`@rpm-standard1.sh:
- Around line 1-14: Update all four sourced scenario
scripts—test/scenarios/releases/el98-lrel@rpm-standard1.sh (lines 1-14),
test/scenarios/releases/el98-lrel@rpm-standard2.sh (lines 1-14),
test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (lines 1-14), and
test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh (lines 1-14)—to use the
/usr/bin/bash shebang and enable set -euo pipefail, or document an explicit
shell-policy exception for these scripts.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: e700dba5-0116-44b6-9590-298ab22c3bd5
📒 Files selected for processing (4)
test/scenarios/releases/el98-lrel@rpm-standard1.shtest/scenarios/releases/el98-lrel@rpm-standard2.shtest/scenarios/releases/el98-yminus1@el98-lrel@rpm.shtest/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh
There was a problem hiding this comment.
Caution
Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 1
🧹 Nitpick comments (1)
test/scenarios/releases/el98-lrel@rpm-standard1.sh (1)
1-14: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAlign the four sourced scripts with the shell-script policy.
test/bin/scenario.shenables strict mode before sourcing these files. Change all four shebangs to#!/usr/bin/bashand addset -euo pipefail, or document an explicit exception for sourced scenario scripts.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/scenarios/releases/el98-lrel`@rpm-standard1.sh around lines 1 - 14, Update all four sourced scenario scripts—test/scenarios/releases/el98-lrel@rpm-standard1.sh (lines 1-14), test/scenarios/releases/el98-lrel@rpm-standard2.sh (lines 1-14), test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (lines 1-14), and test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh (lines 1-14)—to use the /usr/bin/bash shebang and enable set -euo pipefail, or document an explicit shell-policy exception for these scripts.Sources: Coding guidelines, Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/scenarios/releases/el98-yminus1`@el98-lrel@rpm.sh:
- Around line 51-56: Pin RHEL 9.8 after repository setup and before dependency
installation by adding the subscription-manager release command before run_tests
host1 in both test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (lines
51-56) and test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh (lines 51-55).
---
Nitpick comments:
In `@test/scenarios/releases/el98-lrel`@rpm-standard1.sh:
- Around line 1-14: Update all four sourced scenario
scripts—test/scenarios/releases/el98-lrel@rpm-standard1.sh (lines 1-14),
test/scenarios/releases/el98-lrel@rpm-standard2.sh (lines 1-14),
test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (lines 1-14), and
test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh (lines 1-14)—to use the
/usr/bin/bash shebang and enable set -euo pipefail, or document an explicit
shell-policy exception for these scripts.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: e700dba5-0116-44b6-9590-298ab22c3bd5
📒 Files selected for processing (4)
test/scenarios/releases/el98-lrel@rpm-standard1.shtest/scenarios/releases/el98-lrel@rpm-standard2.shtest/scenarios/releases/el98-yminus1@el98-lrel@rpm.shtest/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh
🛑 Comments failed to post (1)
test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (1)
51-56: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/bash set -euo pipefail rg -n -C 4 --glob '*.sh' \ 'launch_vm rhel-9\.8|subscription-manager release --set 9\.8|subscription_manager_register|run_tests host1' \ test/scenarios/releasesRepository: openshift/microshift
Length of output: 47071
🏁 Script executed:
#!/usr/bin/bash set -euo pipefail printf '%s\n' '--- target scenarios ---' cat -n 'test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh' | sed -n '1,90p' cat -n 'test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh' | sed -n '1,90p' printf '%s\n' '--- helper definitions and release pin usage ---' rg -n -C 6 \ 'subscription_manager_register|subscription-manager release --set|configure_rhocp_repo|configure_microshift_mirror' \ --glob '*.sh' .Repository: openshift/microshift
Length of output: 36962
🏁 Script executed:
#!/usr/bin/bash set -euo pipefail printf '%s\n' '--- repository helper implementations ---' sed -n '1240,1375p' test/bin/scenario.sh printf '%s\n' '--- test runner and package-install call sites ---' rg -n -C 5 \ 'run_tests\(\)|run_tests |dnf( |-|$)|yum( |-|$)|package|install' \ test/bin test/suites test/scenarios/releases \ --glob '*.sh' --glob '*.robot' \ | sed -n '1,320p' printf '%s\n' '--- registration implementation ---' cat -n test/bin/subscription_manager_register.sh | sed -n '1,180p'Repository: openshift/microshift
Length of output: 29620
🏁 Script executed:
#!/usr/bin/bash set -euo pipefail printf '%s\n' '--- launch and RHEL release configuration flow ---' rg -n -C 8 \ 'launch_vm\(\)|SET_RHEL_RELEASE|configure-vm\.sh|VERSION_ID_MINOR|VERSION_ID=' \ test/bin scripts test \ --glob '*.sh' \ | sed -n '1,360p' printf '%s\n' '--- release commands in all relevant scenario families ---' rg -n -C 3 \ 'launch_vm rhel-9\.8|subscription-manager release --set 9\.8|EXPECTED_OS_VERSION:9\.8' \ test/scenarios/releases test/scenarios-bootc \ --glob '*.sh' \ | sed -n '1,360p'Repository: openshift/microshift
Length of output: 47539
🏁 Script executed:
#!/usr/bin/bash set -euo pipefail python3 - <<'PY' from pathlib import Path targets = [ Path("test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh"), Path("test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh"), ] standard = [ Path("test/scenarios/releases/el98-lrel@rpm-standard1.sh"), Path("test/scenarios/releases/el98-lrel@rpm-standard2.sh"), ] pin = 'subscription-manager release --set 9.8' def check(path): text = path.read_text() required = { "launch_vm rhel-9.8": "launch_vm rhel-9.8" in text, "subscription_manager_register host1": "subscription_manager_register host1" in text, "release pin": pin in text, "run_tests host1": "run_tests host1" in text, } positions = {name: text.find(value) for name, value in [ ("register", "subscription_manager_register host1"), ("pin", pin), ("run_tests", "run_tests host1"), ]} print(path) print(required) print(positions) for path in targets + standard: check(path) print("All tracked release-pin occurrences:") for path in sorted(Path(".").rglob("*.sh")): text = path.read_text(errors="replace") if pin in text: print(path) PYRepository: openshift/microshift
Length of output: 1305
Pin RHEL 9.8 before dependency installation
Add
run_command_on_vm host1 "sudo subscription-manager release --set 9.8"after repository setup and beforerun_tests host1in both upgrade scenarios.📍 Affects 2 files
test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh#L51-L56(this comment)test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh#L51-L55🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/scenarios/releases/el98-yminus1`@el98-lrel@rpm.sh around lines 51 - 56, Pin RHEL 9.8 after repository setup and before dependency installation by adding the subscription-manager release command before run_tests host1 in both test/scenarios/releases/el98-yminus1@el98-lrel@rpm.sh (lines 51-56) and test/scenarios/releases/el98-yminus2@el98-lrel@rpm.sh (lines 51-55).
|
/retest |
2 similar comments
|
/retest |
|
/retest |
|
Backport to release-5.0: #7297 |
Add ostree (.toml) and bootc (.containerfile) image blueprints for RHEL 9.8 with y-1 (4.22) and y-2 (4.21) MicroShift versions. These start images are prerequisites for the el98→el98 upgrade CI scenarios added in subsequent commits. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> pre-commit.check-secrets: ENABLED
Test RPM-based upgrade from MicroShift 4.21 (y-2) to 5.0 on RHEL 9.8 using the YMINUS2 release repo and brew RPMs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> pre-commit.check-secrets: ENABLED
…on RHEL 9.8 Test ostree upgrades from MicroShift 4.22 (y-1) and 4.21 (y-2) to 5.0 on RHEL 9.8 with LVMS workload validation and standard1+standard2 suites. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> pre-commit.check-secrets: ENABLED
…n RHEL 9.8 Test bootc upgrades from MicroShift 4.22 (y-1) and 4.21 (y-2) to 5.0 on RHEL 9.8 with LVMS workload validation and standard1+standard2 suites. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> pre-commit.check-secrets: ENABLED
- el98@rpm-upgrade.sh → el98-yminus1@el98-lrel@rpm.sh - el98@rpm-standard1.sh → el98-lrel@rpm-standard1.sh - el98@rpm-standard2.sh → el98-lrel@rpm-standard2.sh - el98-yminus2@rpm-upgrade.sh → el98-yminus2@el98-lrel@rpm.sh Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> pre-commit.check-secrets: ENABLED
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
|
/test e2e-aws-tests-release |
|
/test e2e-aws-tests |
|
@agullon: This pull request references USHIFT-7065 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.1.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/override ci/prow/e2e-aws-tests-bootc-arm-el9 because not release CI jobs |
|
@agullon: Overrode contexts on behalf of agullon: ci/prow/e2e-aws-tests, ci/prow/e2e-aws-tests-bootc-arm-el9, ci/prow/e2e-aws-tests-bootc-el10 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@agullon: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: agullon, pacevedom The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/verified by CI |
|
@agullon: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
Summary
Add CI release scenarios for same-OS-version MicroShift upgrades on
RHEL 9.8 and standardize RPM scenario naming.
New upgrade scenarios (5 files):
el98-yminus2@el98-lrel@rpm.shel98-yminus1@el98-lrel@lvms-standard.shel98-yminus2@el98-lrel@lvms-standard.shel98-y1@el98-lrel@lvms-standard.shel98-y2@el98-lrel@lvms-standard.shNew image blueprints (4 files):
Start images for el98 with older MicroShift versions — required by the
ostree and bootc scenarios above.
rhel98-brew-y1-with-optionals.toml/rhel98-brew-y2-with-optionals.tomlrhel98-bootc-brew-y1-with-optional.containerfile/rhel98-bootc-brew-y2-with-optional.containerfileRenames (3 existing files):
el98@rpm-upgrade.shel98-yminus1@el98-lrel@rpm.shel98@rpm-standard1.shel98-lrel@rpm-standard1.shel98@rpm-standard2.shel98-lrel@rpm-standard2.shTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit